package com.itheima.manager;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.autoconfig.oss.OssTemplate;
import com.itheima.domain.db.Questionnaire;
import com.itheima.domain.vo.QuestionnaireVo;
import com.itheima.service.db.QuestionnaireService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public class QuestionnaireManager {

    //问卷表
    @Reference
    private QuestionnaireService questionnaireService;

    @Autowired
    private OssTemplate ossTemplate;


    /*
     *
     *  问卷管理列表
     * @param currentPage 当前页
     * @param pageSize 页条数
     * @author
     * @date
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page
     */

    public Page SoulQuestionnaireList(int currentPage, int pageSize) {

        List<Questionnaire> questionnaireList = questionnaireService.findQuestionList();

        Page<Questionnaire> page = new Page<>(currentPage, pageSize);

        page.setRecords(questionnaireList);
        page.setTotal(questionnaireList.size());


        return page;
    }


    /*
     *  添加问卷数据
     *
     * @param questionnaire 问卷实体类
     * @author
     * @date
     * @return java.lang.Integer   数据添加成功返回Integer数据
     */

    public String saveQuestionnaire(QuestionnaireVo questionnaireVo) {

        String msg="";

        Questionnaire questionnaire = new Questionnaire();


        questionnaire.setName(questionnaireVo.getName());
        questionnaire.setCover(questionnaireVo.getCover());
        questionnaire.setStar(questionnaireVo.getStar());
        //等级
        questionnaire.setLevel(Integer.valueOf(questionnaireVo.getLevel()));



       if(questionnaireService.saveQuestionnaire(questionnaire)>0) {
           msg="ok";
       }

        return msg;
    }

    public Map<String, String> upload(MultipartFile file) throws IOException {
        //调用阿里云上传
        String uploadPath = null;

        if (file != null) {
            uploadPath = ossTemplate.upload(file.getOriginalFilename(), file.getInputStream());
        }
        HashMap<String, String> map = new HashMap<>();
        map.put("message", "https://"+uploadPath);
        return map;

    }

    /*
     *  编辑问卷 第一步查询出问卷数据
     *
     * @param questionnaire 问卷实体数据
     * @author
     * @date
     * @return com.itheima.domain.db.Questionnaire
     */

    public Questionnaire showQuestionnaire(Questionnaire questionnaire) {
        return  questionnaireService.findById(questionnaire.getId());
    }

    /*
     *  编辑问卷
     *
     * @param questionnaire 问卷实体数据
     * @author
     * @date
     * @return java.lang.String
     */
    public String updateQuestionnaire(Questionnaire questionnaire) {
        String msg="";
        if(questionnaireService.updateQuestionnaire(questionnaire)>0){
            msg="ok";
        }

        return msg;
    }

    /*
     *
     *  删除问卷
     * @param questionnaire 问卷实体类
     * @author
     * @date
     * @return java.lang.String
     */

    public String deleteQuestionnaire(Questionnaire questionnaire) {
        String msg="";
        if(questionnaireService.deleteQuestionnaire(questionnaire)>0){
            msg="ok";
        }

        return msg;
    }
}
